﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ModeloDatos
{
    public class CRUD_Control_Diario
    {
        PedidosDataContext db = new PedidosDataContext();

        public String aperturaCaja(ControlDiario cd)
        {
            string rpta = "";
            try
            {
                db.SP_Insertar_Control_Diario(cd.IdControlDiario,
                                              cd.fecha,
                                              cd.IdMovimiento,
                                              cd.criterio,
                                              cd.monto,
                                              cd.ganancia,
                                              cd.observacion);
                rpta = "OK";
            }
            catch (Exception ex)
            {

                System.Console.Write(ex.Message);
                rpta = ex.Message;
            }

            return rpta;
        }

        public List<TipoMovimiento> listarTipoMovimientos()
        {
            List<TipoMovimiento> lista = new List<TipoMovimiento>();
            try
            {
                var rs = db.SP_Listar_Movimientos();
                foreach (var item in rs)
                {
                    TipoMovimiento tm = new TipoMovimiento();
                    tm.IdMovimiento = item.IdMovimiento;
                    tm.nombre = item.nombre;
                    lista.Add(tm);
                }
            }
            catch (Exception ex)
            {
                System.Console.Write(ex.Message);                
            }
            return lista;
        }

        public List<ListaCajas> listarCajas()
        {
            List<ListaCajas> lista = new List<ListaCajas>();
            try
            {
                var rs = db.SP_Listar_Lista_Cajas();
                foreach (var item in rs)
                {
                    ListaCajas lc = new ListaCajas();
                    lc.IdListaCaja = item.IdListaCaja;
                    lc.descripcion = item.descripcion;
                    lista.Add(lc);
                }
            }
            catch (Exception ex)
            {
                System.Console.Write(ex.Message);
            }
            return lista;
        }

        public List<ControlDiario> listarControlDiario(DateTime fecha)
        {
            List<ControlDiario> lista = new List<ControlDiario>();
            try
            {
                var rs = db.SP_Listar_Control_Diario(fecha);
                foreach (var item in rs)
                {
                    ControlDiario cd = new ControlDiario();
                    cd.IdControlDiario = item.IdControlDiario;
                    cd.fecha = item.fecha;
                    TipoMovimiento tm = new TipoMovimiento();
                    tm.nombre = item.nombre;
                    cd.TipoMovimiento = tm;
                    cd.criterio = item.criterio;
                    cd.monto = item.monto;
                    cd.ganancia = item.ganancia;
                    cd.observacion = item.observacion;
                    lista.Add(cd);
                }
            }
            catch (Exception ex) 
            {
                System.Console.Write(ex.Message);
            }
            return lista;
        }

        public int codigoControlDiario()
        {
            int codigo = 0;
            try
            {
                var rs = db.SP_Generar_Cod_ControlDiario();
                foreach (var item in rs)
                {
                    codigo =(int) item.codigo;
                }
            }
            catch (Exception ex)
            {
                System.Console.Write(ex.Message);
            }
            return codigo;
        }
    }
}
